package com.itzmn.examinations.gaosi;

import java.util.*;

/**
 * @Author: 张梦楠
 * @Date: 2018/11/10 20:02
 * 简书：https://www.jianshu.com/u/d611be10d1a6
 * 码云：https://gitee.com/zhangqiye
 * @Description:
 *   给定一个数组，将数据排序输出，数字出现次数多的先输出，同种次数的那个数字大那个先输出
 *    2,2,3,4,4,5
 *    输出 4，4,2,2,5,3
 */
public class Num1 {


    public static void main(String[] args) {

        Scanner sc =new Scanner(System.in);
        String str =sc.next();
        sc.close();

        String[] arr = str.split(",");
        Integer[]array =new Integer[arr.length];
        for(int i=0;i<array.length;i++) {
            array[i]=Integer.parseInt(arr[i]);
        }
        Map<Integer,Integer> m = new HashMap<>();

        for(int d : array){
            m.put(d,m.get(d)==null ? 1 : m.get(d)+1);
        }

        Comparator<Integer> comparator = (o1, o2) -> {
            /**
             * 比较器，如果数据出现的频率不一样，先按照出现频率降序，如果一样，按照数据大小降序排序
             */
            if (m.get(o1)!=m.get(o2)){
                return Integer.compare(m.get(o1),m.get(o2));
            }else {
                return Integer.compare(o1,o2);
            }

        };

        Arrays.sort(array,comparator);
        StringBuffer str2 = new StringBuffer();
        for(int i=array.length-1;i>=0;i--) {
            str2.append(array[i]+",");
        }
        System.out.println(str2.subSequence(0, str.length()).toString());



    }

}
